// 业务层初始化

const validate = require('validate.js')
const moment = require('moment')

validate.extend(validate.validators.datetime, {
    /**
     * 该函数会自动用于日期格式转换
     * 他会在验证时自动触发，它需要将任何数据转换为时间戳
     * 如果无法转换，返回NaN
     * @param {*} value 要转换的值
     * @param {*} options 针对某个属性的验证配置
     */
    parse(value, options) {
        var formats = ['YYYY-MM-DD HH:mm:ss', "YYYY-MM-DD H:m:s", "x"]
        if (options.dateOnly) { // 只能使用日期格式
            formats = ['YYYY-MM-DD', "YYYY-M-D", "x"]
        }
        return +moment.utc(value, formats, true)
    },
    /**
     *用于显示错误消息时显示的消息提示
     * @param {*} value
     * @param {*} options
     */
    format(value, options) {
        var formats = "YYYY-MM-DD"
        if (!options.dateOnly) { // 只能使用日期格式
            formats += " HH:mm:ss"
        }
        return moment.utc(value).format()
    }
})